#ifndef DEF_Mx
#define DEF_Mx

#include <vector>
#include <string>

using namespace std;

void M0(vector<string>& TR,
        int NTR,
        vector<string>& VT,
        int& NVT,
        vector<string>& CARSPE,
        vector<int>& C,
        vector<vector<int> >& CODE,
        vector<vector<int> >& NUM,
        vector<vector<int> >& TACHE,
        int& ERR);


void R123(int i,
          vector<vector<int> >& CODE,
          vector<vector<int> >& NUM,
          vector<vector<int> >& TACHE,
          vector<int>& C,
          int& NTR);


void R4(int i,
        vector<vector<int> >& CODE,
        vector<vector<int> >& NUM,
        vector<vector<int> >& TACHE,
        vector<int>& C,
        vector<bool>& B,
        int& NTR,
        int& ERR);


void M1(vector<vector<int> >& CODE,
        vector<vector<int> >& NUM,
        vector<vector<int> >& TACHE,
        vector<int>& C,
        vector<bool>& B,
        int& NTR,
        int& ERR);


void M2(const vector<vector<int> >& CODE,
        const vector<vector<int> >& NUM,
        const vector<vector<int> >& TACHE,
        const vector<int>& C,
        const vector<bool>& B,
        const int& NTR,
        vector<vector<int> >& PA,
        int& NPA,
        vector<vector<int> >& A,
        int& NA,
        vector<vector<int> >& PO,
        int& NPO,
        vector<vector<int> >& O,
        int& NO
        );

#endif
